package com.cino.enums;

/**
 * 审计日志存储方式枚举
 * 
 * 支持的存储方式：
 * - MYSQL: 存储到MySQL数据库（默认方式）
 * - LOCAL: 存储到本地文件系统
 */
public enum StoreType {
    
    /**
     * MySQL数据库存储
     */
    MYSQL("mysql", "存储到MySQL数据库"),
    
    /**
     * 本地文件存储
     */
    LOCAL("local", "存储到本地文件系统");
    
    private final String code;
    private final String description;
    
    StoreType(String code, String description) {
        this.code = code;
        this.description = description;
    }
    
    public String getCode() {
        return code;
    }
    
    public String getDescription() {
        return description;
    }
    
    /**
     * 根据代码获取枚举值
     * 
     * @param code 代码
     * @return 对应的枚举值，如果不存在返回MYSQL（默认）
     */
    public static StoreType fromCode(String code) {
        if (code == null || code.trim().isEmpty()) {
            return MYSQL;  // 默认返回MYSQL
        }
        
        for (StoreType type : values()) {
            if (type.code.equalsIgnoreCase(code.trim())) {
                return type;
            }
        }
        
        return MYSQL;  // 默认返回MYSQL
    }
    
    /**
     * 获取默认的存储类型
     * 
     * @return 默认存储类型（MYSQL）
     */
    public static StoreType getDefault() {
        return MYSQL;
    }
}
